package lambdaDemo.demo01;

/**
 * @auther gxnualbert
 * @create 2021-05-29-21:02
 */

/*
    函数式接口的使用:一般可以作为方法的参数和返回值类型
 */
public class Demo {
    //定义一个方法,参数使用函数式接口MyFunctionalInterface
    public static void show(MyFunctionalInterface myInter){
        myInter.method();
    }

    public static void main(String[] args) {
        //调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象
        show(new MyFunctionalInterfaceImpl());

        show(new MyFunctionalInterfaceImpl(){
            @Override
            public void method(){
                System.out.println("使用匿名内部类重写接口中的抽象方法");
            }
        });

        show(()->{
            System.out.println("使用Lambda表达式重写接口中的抽象方法");
        });

        show(()-> System.out.println("这是简化的写法 啊啊啊"));
    }
}
